home *** CD-ROM | disk | FTP | other *** search
/ Mission 1 / Mission 1 / Mission 1.iso / pd_share / gemini / gemini2 / man / cat5 / cookies.5
Encoding:
Text File  |  1994-12-16  |  13.7 KB  |  266 lines

  1. COOKIES(5)                     Dateiformate                    COOKIES(5)
  2.  
  3. N✓NA✓AM✓ME✓E
  4.      cookies - Datei mit Beschreibungen zu installierten Cookies
  5.  
  6. B✓BE✓ES✓SC✓CH✓HR✓RE✓EI✓IB✓BU✓UN✓NG✓G
  7.      Das Kommando c✓co✓oo✓ok✓ki✓ie✓e braucht zur Interpretation der in einem
  8.      Cookie eingetragen Werte eine Datei mit Beschreibungen über bekannte
  9.      Cookies.
  10.  
  11.      Die Datei soll sich in einem Verzeichnis befinden, das durch die Environ-
  12.      mentvariable 'ETCDIR' beschrieben wird (achten Sie darauf 'ETCDIR' mit 
  13.      via 'export' und nicht mittels 'setenv' ins Environment einzufügen). 
  14.      Die Struktur von 'COOKIES' wird durch folgende Regeln (EBNF) beschrieben:
  15.      
  16.      >>>---------------------------------------------------------------------<<<
  17.  
  18.           <COOKIE-FILE>
  19.  
  20.                ["COOKIE"]                    Programm-identifier
  21.  
  22.                {<cookie> | <comment>}        Liste von Cookiebeschreibungen
  23.                                              oder Kommentaren
  24.  
  25.           ----------------------------------------------------------------------
  26.           <cookie>                           ein einzelner Cookie
  27.  
  28.                "[" <string_4> "]"
  29.                [<name> | <creator> | <description> | <section> | <comment>]
  30.  
  31.                                              ein Cookie kann aus dem Namen, dem
  32.                                              Erzeuger und einer Beschreibung
  33.                                              bestehen. Kommentare dürfen na-
  34.                                              türlich auch hier nicht fehlen.
  35.                                              
  36.           ----------------------------------------------------------------------
  37.           <name>
  38.  
  39.                "NAME="<string_48>            Der volle Name eines Cookies
  40.  
  41.           ----------------------------------------------------------------------
  42.           <creator
  43.  
  44.                "CREATOR="<string_48>         Der 'Erzeuger' eines Cookies
  45.  
  46.           ----------------------------------------------------------------------
  47.           <description>
  48.  
  49.                "DESCRIPTION_"<number>"="     Hier kann eine langatmige Beschrei-
  50.                                              bung des Cookies erfolgen. Die 
  51.                                              erste Beschreibung trägt die Nr. 0,
  52.                                              alle weiteren müssen in aufstei-
  53.                                              gender Nummerierung folgen.
  54.  
  55.           ----------------------------------------------------------------------
  56.           <section>
  57.  
  58.                "<SECTION_"<number>">"        Die Beschreibung eines Abschnittes.
  59.                                              Ein Abschnitt ist dabei eine Bit-
  60.                                              gruppe innerhalb des zweiten long-
  61.                                              wertes des Cookies. z.B. der _FPU-
  62.                                              Cookie ist in 4 Abschnitte aufge-
  63.                                              teilt:
  64.                                                   12 Bits sind unbenutzt
  65.                                                   1  Bit 68040?
  66.                                                        durch Bitcodierung
  67.                                                   2  Bits 68881 oder 68882?
  68.                                                        durch Wertcodierung
  69.                                                   1  Bit SFP 004 komp. ?
  70.                                              Die erste Section trägt die Nr.
  71.                                              0, alle weiteren müssen in auf-
  72.                                              steigender Nummerierung folgen.
  73.                "CODED = "<section_coding>    Die Codierung eines Abschnittes
  74.                {(<values> | <bits> | <structure>)}
  75.                                              Die Beschreibung der Einträge
  76.  
  77.           ----------------------------------------------------------------------
  78.           <section_coding>
  79.                
  80.                <number> "," ("UNUSED" | "VALUE" | "BITS" | "STRUCTURE")
  81.                                              <number> gibt die Anzahl von der
  82.                                                   Section verwendeten Bits an.
  83.                                                   Die Bits werden über alle
  84.                                                   Sections aufaddiert. Die In-
  85.                                                   terpretation startet beim
  86.                                                   höchsten Bit angefangen und
  87.                                                   ended mit Bit 0.
  88.                                              "UNSUSED": Bits sind unbenutzt
  89.                                              "VALUE": Die Section besteht aus 
  90.                                                   fixen Werten (Wertcodierung).
  91.                                              "BITS": Die Section besteht aus 
  92.                                                   einzelnen Bits (Bitcodierung),
  93.                                                   die jeweils ein bestimmte Be-
  94.                                                   deutung haben.
  95.                                              "STRUCTURE": Der komplette zweite
  96.                                                   Wert des Cookie wird als Zei-
  97.                                                   ger auf eine Struktur inter-
  98.                                                   pretiert. <number> wird igno-
  99.                                                   riert.
  100.  
  101.           ----------------------------------------------------------------------
  102.           <structure>
  103.  
  104.                {"<SECTION_" <number> "_" <number> ">"
  105.  
  106.                                              Die Beschreibung eines Elementes.
  107.  
  108.                 {"ELEMENT =" <string_48> "," <type> "," ("UNUSED"|
  109.                                                          "VALUE" |
  110.                                                          "BITS" |
  111.                                                          "CHAR" |
  112.                                                          "CHAR_POINTER" |
  113.                                                          "INT" |
  114.                                                          "INT_POINTER" |
  115.                                                          "HEX" |
  116.                                                          "HEX_POINTER"|
  117.                                                          "LONG" |
  118.                                                          "LONG_POINTER" |
  119.                                                          "LONG") "," <number>
  120.                                                          
  121.                                              <string_48> Name des Elementes
  122.                                              <type> Es kann entweder ein ein-
  123.                                                   facher Typ oder ein Feld mit
  124.                                                   einfachen Typen ausgegeben
  125.                                                   werden.
  126.                                              <number>: ist der <type> = "ARRAY"
  127.                                                   dann gibt <number> die Anzahl
  128.                                                   der Elemente im Feld wieder.
  129.                                                   Bei "SIMPLE" wird <number> 
  130.                                                   nur dann herangezogen, wenn
  131.                                                   "VALUE"s aktiv ist. Dann kann
  132.                                                   <number> 2 oder 4 (Byte) sein.
  133.                                                   Damit lassen sich dann int
  134.                                                   oder long "VALUE"s unterschei-
  135.                                                   den.
  136.  
  137.                   {(<values> | <bits>)}
  138.                 }
  139.                }
  140.                
  141.           ----------------------------------------------------------------------
  142.           <values>
  143.  
  144.                [{"VALUE_" <number> " = " <number> "," <string_48>} | 
  145.                  "DEFAULT = " <string_48>]
  146.  
  147.                                              Der erste "VALUE" trägt die Nr.
  148.                                              0, alle weiteren müssen in auf-
  149.                                              steigender Reihe folgen.
  150.                                              Die zweite <number> gibt den Wert
  151.                                              an, der als Prüfbedingung für den
  152.                                              Vergleich und die anschließende
  153.                                              Ausgabe von <string_48> dient. Der
  154.                                              Wert kann int oder long sein.
  155.                                              Wenn keiner der "VALUE"s trifft, 
  156.                                              dann versucht das Programm den
  157.                                              "DEFAULT"-Wert zufinden, der nur
  158.                                              eine Erläuterung (<string_48>) als
  159.                                              Parameter trägt.
  160.                                                             
  161.           ----------------------------------------------------------------------
  162.           <bits>
  163.  
  164.                ["BIT_" <number> " = <string_48>"," <string_48>]
  165.  
  166.                                              Hiermit werden einzelne Bits ge-
  167.                                              prüft. Die <number>, die zur Spezi-
  168.                                              fizierung des Bits angegeben wird,
  169.                                              darf zwischen 0 und 31 liegen.
  170.                                              Der erste <string_48> gibt die Be-
  171.                                              deutung des Bits wieder wenn es 
  172.                                              gesetzt ist, der zweite wenn es 
  173.                                              nicht gesetzt ist. Meist unter-
  174.                                              bleibt der zweite Wert, weil nicht
  175.                                              gesetzte Bits selten eine Bedeu-
  176.                                              tung haben.
  177.                
  178.           ----------------------------------------------------------------------
  179.           <type>
  180.  
  181.                ("SIMPLE" | "ARRAY")          "SIMPLE": Ein einfacher Datentyp
  182.                                              "ARRAY": Ein Feld einfacher Daten-
  183.                                                   typen
  184.                
  185.           ----------------------------------------------------------------------
  186.           <number>
  187.  
  188.                {"0" | ... | "9"}             Normale Zahlen
  189.  
  190.           ----------------------------------------------------------------------
  191.           <string_4>
  192.           
  193.                Alle Zeichen mit Ausnahme des '"'-Zeichens
  194.                
  195.                                              Anzahl der Wiederholungen auf 4
  196.                                              beschränkt
  197.  
  198.           ----------------------------------------------------------------------
  199.           <string_48>
  200.           
  201.                Alle Zeichen mit Ausnahme des '"'-Zeichens
  202.                
  203.                                              Anzahl der Wiederholungen auf 48
  204.                                              beschränkt
  205.  
  206.      >>>---------------------------------------------------------------------<<<
  207.  
  208.      Beispiel:
  209.      
  210.      Check Open Files legt einen Cookie namens "OFLS" an, dessen zweiter long-
  211.      Wert auf eine Struktur im Speicher zeigt, die in "C" wie folgt notiert 
  212.      wird:
  213.  
  214.           struct ofls_cookie
  215.           {
  216.              long  product;             /* 'OFLS' (0x4F464C53)    */
  217.              unsigned short version;    /* z.B. 0x0103 für V 1.03 */
  218.              signed short drives[32];   /* Infos für 32 Laufwerke */
  219.              signed short reserved[32]; /* Für evt. Erweiterungen */
  220.           };
  221.  
  222.      Eine Umsetzung der obigen Beschreibung in die Syntax von COOKIES sieht wie
  223.      folgt aus:
  224.  
  225.           [OFLS]
  226.           NAME = "Check Open Files";
  227.           CREATOR = "Hans-Jürgen Richstein (Standardcookie)";
  228.           DESCRIPTION_0 = "Merkt sich alle auf einem Laufwerk offenen"
  229.           DESCRIPTION_1 = "Dateien, so daß Programme, die auf der FAT"
  230.           DESCRIPTION_2 = "operieren (z.B. KOBOLD, Diskus) keinen Daten-"
  231.           DESCRIPTION_3 = "verlust forcieren. Eine '-1' als Status heißt,"
  232.           DESCRIPTION_4 = "daß das Laufwerk für Dateioperationen gesperrt"
  233.           DESCRIPTION_5 = "ist, weil eine FAT-orientierte Anwendung auf"
  234.           DESCRIPTION_6 = "dem Laufwerk arbeitet."
  235.  
  236.           <SECTION_0>
  237.           CODED = 32,STRUCTURE
  238.           <SECTION_0_0>
  239.           ELEMENT = "Produkt:   ",SIMPLE,VALUE,4
  240.           VALUE_0 = 0x4F464C53,"CHK_OFLS.PRG (Kaktus)";
  241.           DEFAULT = "Unbekannt";
  242.           <SECTION_0_1>
  243.           ELEMENT = "Version:   ",SIMPLE,HEX,0
  244.           <SECTION_0_2>
  245.           ELEMENT = "Status A-P:  ",ARRAY,INT,16
  246.           <SECTION_0_3>
  247.           ELEMENT = "Status Q-...:",ARRAY,INT,16
  248.  
  249.      Um weitere Beispiele kennenzulernen schauen Sie bitte in die mitgelieferte 
  250.      "COOKIES"-Datei. Neben dem schon angesprochenen "OFLS"-Cookie haben die
  251.      Cookies "_FDC" und "FSMC" besonderen Beispielcharakter.
  252.  
  253.  
  254. E✓ER✓RW✓WE✓EI✓IT✓TE✓ER✓RU✓UN✓NG✓GE✓EN✓N
  255.      Dürfen vom Benutzer in freier Eigenverantwortung vorgenommen werden. Sicher-
  256.      lich wäre es sinnvoll, solche Erweiterungen dem Autor mitzuteilen, damit so 
  257.      auf Dauer eine umfangreiche Sammlung entsteht. Besonders interessant sind 
  258.      hier Beschreibungen für Strukturen, auf die ein Cookie zeigt kann.
  259.  
  260. D✓DA✓AT✓TE✓EI✓IE✓EN✓N
  261.      $ETCDIR\cookies
  262.      .\cookies
  263.           An diesen Orten (und in dem Verzeichnis, in dem cookie.ttp 
  264.           selbst sich befindet) wird nach der Cookies-Datei gesucht.
  265.  
  266.